package com.naiterui.ehp.bs.emr.entity.mongo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.naiterui.ehp.bp.bo.emr.MedicalRecordSettingBO;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 病历模板
 *
 * @author yangfuya
 * @since 2022/4/11
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "medical_record_template")
public class MedicalRecordTemplate implements Serializable {

    private static final long serialVersionUID = -2794144453291712217L;

    @Id
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String id;

    @ApiModelProperty(value = "模板名称")
    private String name;

    @ApiModelProperty(value = "医生ID")
    private Long doctorId;

    @ApiModelProperty(value = "主诉")
    private String mainComplaint;

    @ApiModelProperty(value = "现病史")
    private String presentDisease;

    @ApiModelProperty(value = "既往史")
    private String pastHistory;

    @ApiModelProperty(value = "过敏史")
    private String allergy;

    @ApiModelProperty(value = "家庭史")
    private String pastFamily;

    /**
     * 月经婚育史
     */
    @ApiModelProperty(value = "月经-月经状态(0,未初潮、1,已初潮、2,已绝经)")
    private Integer status;

    @ApiModelProperty(value = "月经-初潮年龄")
    private Integer firstAge;

    @ApiModelProperty(value = "月经-月经周期")
    private Integer cycle;

    @ApiModelProperty(value = "月经-行经天数")
    private Integer processDays;

    @ApiModelProperty(value = "月经-是否痛经(0,否;1,是)")
    private Integer dysmenorrhea;

    @ApiModelProperty(value = "月经-痛经部位")
    private String part;

    /**
     * 检查指标
     */
    @ApiModelProperty(value = "检查指标-体温")
    private Double temperature;

    @ApiModelProperty(value = "检查指标-体重")
    private Double weight;

    @ApiModelProperty(value = "检查指标-心率")
    private Integer heartRete;

    @ApiModelProperty(value = "检查指标-收缩压")
    private Integer systolic;

    @ApiModelProperty(value = "检查指标-舒张压")
    private Integer diastole;

    @ApiModelProperty(value = "检查指标-更多检查结果")
    private String moreExamin;

    @ApiModelProperty(value = "检查指标-其它检查中的alt")
    private Integer alt;

    @ApiModelProperty(value = "检查指标-其它检查中的ast")
    private Integer ast;

    @ApiModelProperty(value = "检查指标-其它检查中的hbvDna")
    private String hbvDna;

    @ApiModelProperty(value = "检查指标-阳性体征")
    private String positiveSigns;

    @ApiModelProperty(value = "检查指标-必要的阴性体征")
    private String negativeSigns;

    @ApiModelProperty(value = "诊断列表")
    private List<String> diagnosisList;

    @ApiModelProperty("治疗意见")
    private String treatmentOptions;

    @ApiModelProperty("病历设置")
    private List<MedicalRecordSettingBO> medicalRecordSettingList;

    @ApiModelProperty(value = "创建时间")
    private Date createAt;

    @ApiModelProperty(value = "修改时间")
    private Date changedAt;
}
